package com.mini.handler;

import com.mini.MiniResultSetHandler;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public abstract class MiniAbstractListHandler<T> implements MiniResultSetHandler<List<T>> {

    // 处理所有行数据，将结果集对象中的每一行数据转化成List集合的每个元素
    @Override
    public List<T> handle(ResultSet resultSet) throws SQLException {
        List<T> rows = new ArrayList<>();
        while (resultSet.next()) {
            rows.add(handleRow(resultSet));
        }
        return rows;
    }

    // 处理行数据，将一行数据转化成map集合
    public abstract T handleRow(ResultSet resultSet) throws SQLException;
}
